& (побитовое И)

Доступность

Flash Player 5.

Во Flash 4, оператор (&) использовался для объединения строк. Во Flash 5, оператор (&) является оператором "побитовое И" и для объединения строк, нужно использовать оператор (add) или оператор (+). Файлы Flash 4, использующие оператор (&), автоматически обновляются для использования (add), во время переноса в рабочую среду Flash 5.

Синтаксис

expression1 & expression2

Параметры

Нет.

Возвращает

32-битное целое число.

Описание

Оператор (побитовый), конвертирует expression1 и expression2 в 32-битные целые числа, и выполняет операцию "булевого И" над каждым битом аргумента целого числа.. Числа с плавающей запятой преобразуются в целое число, путём отбрасывания десятичной части. В результате мы имеем новое беззнаковое целое число.

Положительные целые числа конвертируются в 16-битное беззнаковое целое число, с максимальным значением 4294967295 или 0xFFFFFFFF; значения большие, чем максимум, отбрасывают лишние значащие цифры до конвертации. Отрицательные целые числа конвертируются в 16-битное беззнаковое целое число, с минимальным значением -2147483648 или 0x800000000; числа имеющие значение меньшие, чем минимум, отбрасывают лишние значащие цифры до конвертации.

Возвращаемое значение, интерпретируется, как двоичное число, имеющее значение в интервале от -2147483648 до 2147483647.

Для дополнительной информации, смотрите "Старшинство и ассоциативность операторов" в Использовании ActionScript во Флэш .

Пример

В следующем примере, числа сравниваются побитово и возвращается 1, только если оба бита, в одинаковых позициях, имеют значение 1. В этом скрипте определяется 13 (бинарное 1101) и 11 (бинарное 1011), с возвращением 1, в случае равенства, в одинаковых позициях, битов единице :

var insert:Number = 13;
var update:Number = 11;
trace(insert & update);  // выводится : 9 (или 1001 бинарное)

Для чисел 13 и 11 результат - 9 потому, что только первая и последняя позиции, у обоих чисел, имеют значение 1.

Пример, демонстрирующий применение оператора & (побитовое И):

trace(0xFFFFFFFF); // 4294967295
trace(0xFFFFFFFF & 0xFFFFFFFF); // -1
trace(0xFFFFFFFF & -1); // -1
trace(4294967295 & -1); // -1
trace(4294967295 & 4294967295); // -1 

См.также

&= (присваивание побитового И), ^ (побитовое исключающее ИЛИ), ^= (побитовое исключающее ИЛИ с присвоением), | (побитовое ИЛИ), |= (присваивание побитового ИЛИ), ~ (побитовое НЕТ)